const express = require('express');
const router = express.Router();
const formidable = require('formidable')

const {customAlphabet } = require('nanoid')
const db = require('../db/index.js')

const ResVo = require('../class/ResVo.js')

router.post('/upload/img', (req, res)=>{
   // 创建表单对象
   const form = formidable({
    // 是否多文件上传
    multiples: true ,
     //设置上传文件的保存目录
     uploadDir: __dirname + '/../public/imgs',
     //保持文件后缀
    keepExtensions: true
   });

   // 解析请求参数
   form.parse(req, (err, fields, files) => {
     if (err) {
       return res.send(ResVo.err(err.message))
     }

    //  判断上传文件的类型 、 多文件、单文件
    //  if(Object.prototype.toString.call(files.file).slice(8, -1) === 'Array'){
    //   console.log('多文件');
    //  }else if(Object.prototype.toString.call(files.file).slice(8, -1) === 'Object'){
    //   console.log('单文件');
    //  }else{
    //   console.log('未知');
    //  }


  
    const id = customAlphabet('1234567890abcdefghijk', 10)() // 使用自定义字母和大小
    const name =files.file.originalFilename
    const fileSize =  files.file.size // kb
    const url =`public/imgs/${files.file.newFilename}`
    const fileType = files.file.mimetype

    // sql执行

    const sql = `insert into image_resources (id,image_name,image_size,storage_path,file_type) values (?,?,?,?,?)`

    db.query(sql, [id, name,fileSize, url, fileType], (err, results)=>{
      if(err || results.affectedRows !== 1){
        return res.send(ResVo.err(err.message))
      }

      res.send(ResVo.setData({
        id, name,fileSize, url, fileType
      }))

    })

  });
})




module.exports = router;